Discrete Mathematics - Principle of inclusion and exclusion(排容原理)

Principle of inclusion and exclusion(排容原理)

假設 U 為與集合,其中 |U|=N,令 a1,a2,...,an 為 n 個性質,其中這些性質直接定義在 U 上且 N(ai) 表示 U 中滿足性質 ai 的元素個數。

  • 定義
    • N(¯ai) 表示 U 中不滿族性質 ai 的元素個數。
    • N(aiaj) 表示 U 中同時滿足性質 aiaj 的元素個數。
    • N(¯ai¯aj) 表示 U 中同時滿足性質 aiaj 的元素個數。

Lemma 1

若有一數 n 有正因數解,該組解必有一正因數「小於等於」n

Proof

若兩正因數都大於 n ,相乘後不可能為 n

Ex ( 97 清大 )

1 ~ 100 中質數有幾個?

Sol

100=10Consider:2,3,5,7U2100N=|U|=99a1U22a2U33a3U55a4U77:N(¯a1¯a2¯a3¯a4)100(1002+1003+1005+1007)+(1006+10015+10035+10010+10014+10021)(10030+10070+100105+10042)+100350=221+4=25

Ex ( 97 台大 ) 尤拉公式說明

n=Pe11×Pe22×Pe33,Piisprime,ei>0Prove:Φ(n)=n×(11P1)×(11P2)×(11P3)

Proof

U=1,...,n,a1=1<x<n|P1|x,a2=1<x<n|P2|x,a3=1<x<n|P3|xN(¯a1¯a2¯a3)n(nP1+nP2+nP3)+(nP1P2+nP2P3+nP1P3)nP1P2P3=n×(1(1P1+1P2+1P3)+(1P1P2+1P2P3+1P1P3)1P1P2P3)=n×(11P1)×(11P2)×(11P3)

Theorem

m 個相異物放置 n 個相異箱子「不允許」空箱的方法數。

|A|=m,|B|=n,mnonto(m,n)=ni=0(1)i(ni)(ni)m ( 由 A 集合至 B 集合的映成函數個數 )

箱子不得為「空」,採用排容原理

Proof

onto(m,n)=nm(n1)(n1)m+(n2)(n2)m...+(1)n1(nn1)(1)m+(1)n(nn)(0)m=ni=0(1)i(ni)(ni)m

Stirling number of the second kind

<Note> 分堆

m 個相異物放置於 n 個相同箱子「不允許空箱」的方法數,也就是將「映成函數個數」扣除重複計算到相同箱子的個數

  • 假設 m,n 為兩個整數,其中 mn1,定義

S(m,n)=onto(m,n)n!=ni=0(1)i(ni)(ni)mn!

稱為第二種 Stirling 數,有時記作 {mn} ,另外為了方便起見,當 m<n 時,定義 S(m,n)=0

<Note>

m 個相異物放置於 n 個相同箱子「允許空箱」的方法數 =S(m,n)+S(m,n1)+S(m,n2)++S(m,2)+S(m,1)

Theorem - 第二種 Stirling 數的遞迴結構

可用在演算法的使用上,通常以「Dynamic programming」的方式撰寫。

S(m+1,n)=S(m,n1)+S(m,n)

  • Dynamic programming ( 直向軸為 m,橫向軸為 n )
1 2 3 4 5 6 7
1 S(1, 1) = 1 - - - - - -
2 S(2, 1) = 1 S(2, 2) = 1 - - - -
3 S(3, 1) = 1 S(3, 2) = 3 S(3, 3) = 1 - - - -
4 S(4, 1) = 1 S(4, 2) = 7 S(4, 3) = 6 S(4, 4) = 1 - - -
5 S(5, 1) = 1 S(5, 2) = 15 S(5, 3) = 25 S(5, 4) = 10 S(5, 5) = 1 - -
6 S(6, 1) = 1 S(6, 2) = 31 S(6, 3) = 90 S(6, 4) = 65 S(6, 5) = 15 S(6, 6) = 1 -
  • 使用方法
    • 欲求 onto(6,3)+onto(6,4)
    • 查表加上轉換後:90×3!+65×4!

Proof ( 組合證法 )

  • S(m+1, n):m+1 個相異物分成 n 堆,固定一物 A
    • A 為邊緣人S(m,n1)
    • A 有孤單病,所以在 n 堆中挑一堆進入 S(m,n)×n